$namespcae: 'xm' !default;
$block-sel: '-' !default;
$elem-sel: '__' !default;
$mod-sel: '--' !default;

@mixin bfc {
  height: 100%;
  overflow: hidden;
}

// Block
@mixin b($block) {
  $B: #{$namespcae + $block-sel + $block};
  .#{$B} {
    @content;
  }
}

// Element
@mixin e($el) {
  $selector: &;
  @at-root {
    #{$selector + $elem-sel + $el} {
      @content;
    }
  }
}

// Modifier
@mixin m($m) {
  $selector: &;
  @at-root {
    #{$selector + $mod-sel + $m} {
      @content;
    }
  }
}
